import { IPSDERDEFieldMap } from './ipsderdefield-map';
import { IPSDEDataQuery } from '../ds/ipsdedata-query';
import { IPSSysSFPlugin } from '../../res/ipssys-sfplugin';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSDER1NDEFieldMap
 */
export interface IPSDER1NDEFieldMap extends IPSDERDEFieldMap {
  /**
   * 映射类型
   * @description 值模式 [实体1：N关系属性影射类型] {SUM：合计、 AVG：平均、 MAX：最大值、 MIN：最小值、 COUNT：计数、 USER：用户自定义、 USER2：用户自定义2、 USER3：用户自定义3、 USER4：用户自定义4 }
   * @type {( string | 'SUM' | 'AVG' | 'MAX' | 'MIN' | 'COUNT' | 'USER' | 'USER2' | 'USER3' | 'USER4')}
   */
  mapType: string | 'SUM' | 'AVG' | 'MAX' | 'MIN' | 'COUNT' | 'USER' | 'USER2' | 'USER3' | 'USER4';

  /**
   * 从实体数据查询
   *
   * @type {IPSDEDataQuery}
   */
  getMinorPSDEDataQuery(): IPSDEDataQuery | null;

  /**
   * 从实体数据查询
   *
   * @type {IPSDEDataQuery}
   */
  get minorPSDEDataQuery(): IPSDEDataQuery | null;

  /**
   * 从实体数据查询（必须存在）
   *
   * @type {IPSDEDataQuery}
   */
  getMinorPSDEDataQueryMust(): IPSDEDataQuery;

  /**
   * 后台扩展插件
   *
   * @type {IPSSysSFPlugin}
   */
  getPSSysSFPlugin(): IPSSysSFPlugin | null;

  /**
   * 后台扩展插件
   *
   * @type {IPSSysSFPlugin}
   */
  get psSysSFPlugin(): IPSSysSFPlugin | null;

  /**
   * 后台扩展插件（必须存在）
   *
   * @type {IPSSysSFPlugin}
   */
  getPSSysSFPluginMust(): IPSSysSFPlugin;
}
